gcc 参数

·

g++链接时,--start-group和--end-group的作用

在使用g++进行链接时,库之间的符号依赖可能导致链接失败

  • 例如,当库A依赖库B中的符号,而库B又需要库A中的符号时,传统的链接顺序无法满足这种循环依赖
  • 此时,--start-group--end-group选项就显得尤为重要
  • 作用:它们告诉链接器在指定的组内反复扫描目标文件和库,直到不再有新的符号被解析为止,从而解决复杂的依赖问题
  • 正确用法:将相关的目标文件或库放置在--start-group--end-group之间
  • 例如: bash g++ -o myapp --start-group libA.a libB.a --end-group 此命令确保libA.alibB.a之间的依赖关系被正确解析,即使存在循环依赖。
  • 忘记添加--end-group,链接器可能报错或行为异常;滥用该选项可能导致链接时间增加